The present invention relates generally to distributed information systems. More particularly, the invention relates to a scalable multicast algorithm for mobile agents. Applications for the invention include the intelligent transportation system where smart vehicles are connected to a network and periodically send state information, such as position, speed, traffic and weather conditions, and the like. The invention has further utility in the intelligent cooperative transportation system, in which vehicles cooperate to deliver merchandise to its destination. The principles of the invention can also be extended to other mobile object applications, including multi-user network games.
Distributed information systems are becoming increasingly popular as more and more devices establish connectivity on the internet. One major type of distributed information system involves clients that are only interested in information of its immediate geographical vicinity. The technique of the invention aims to efficiently discover and retrieve such information. One particularly promising application involves the intelligent transportation system. Once the majority of all vehicles are equipped with wireless internet connectivity capability, software applications running on the vehicular computer systems can be used to establish a distributed information system.
In such a system each vehicle would serve as both a data source and a data destination, gathering information about the location of each vehicle, its speed, direction of travel, and other state information such as traffic and weather conditions. In effect, each vehicle would gather information about its state and would broadcast that information to interested vehicles, which would make use of the information.
One common way to construct a distributed information system for this kind of application is to establish a central server which collects information from all users (e.g., all vehicles). When a user wants to get information about conditions in a particular region, the user sends a request to the server and the server then transmits the results back to the requesting user. This approach has scaling problems, as the number of users in the application increases, the network bandwidth and processing resources required by the central server increase rapidly. The central server soon becomes a bottleneck, and a single point of failure for the system.
Another common technique is to have all users join a common multicast group through which they broadcast all information. After receiving information from the multicast group, each user must filter out any messages that it considers superfluous. In the traffic application, for example, a user on the upper east side of the city might have no interest in traffic conditions on the lower west side and might therefore configure the client application software to filter out lower west side information as superfluous.
While the common multicast approach solves the single point of failure problem associated with a single server, it does so at a significant cost of increasing network bandwidth requirements and also increasing the processing resources consumed by each user's onboard computer.
The present invention addresses the problem by providing multiple multicast groups. The system divides an area into regions or cells and associates each region or cell with a multicast group address. In this way, users that are only interested in information in their immediately surrounding area, or vision domain, discover information of interest through cooperation with other nearby users. Thus a user on the upper west side would acquire information from other users in that region or cell, using the multicast group address associated with that cell. Meanwhile, information concerning conditions in the lower west side cell would be communicated using a different multicast group address. Thus the users on the upper east side would not need to filter out lower west side information. Of course, if a particular user is interested in obtaining information about another region or cell, the well-designed system should be prepared to deliver it. The present invention makes this possible by using a dynamically reconfigurable quad-tree data structure that stores the current configuration and relationship of all cells or regions. While the quad-tree data structure is presently preferred, other data structures such as K-d trees or the like may be used. The data structure is maintained and updated by a partitioning server, or servers, which can be a central server or distributed servers, that determines the optimal size and grouping of cells based on the ever-changing needs of the users.
As the vehicles for mobile objects move from place to place, the partitioning server acquires information about this movement and reconfigures the quad-tree data structure to optimize performance. Thus regions with a high-density of users will be broken into a larger number of cells by partitioning one or more existing cells into smaller ones. Conversely, regions that are sparsely populated may be assigned to larger cells by merging smaller contiguous cells that are less populated.
According to one aspect of the invention, the dynamic quad-tree partitioning algorithm assigns a coordinator for each cell that is elected by the users of that cell. The coordinator then assesses the cost associated with splitting or merging its cell based on local knowledge of usage conditions. By having one elected coordinator perform this function, the other users within the cell do not have to expend computational resources gathering this information. The coordinator sends the cost information to the partitioning server. The partitioning server uses an algorithm to determine which cells should be split and which cells should be merged to minimize the global cost, thereby optimizing the performance of the system. The partitioning server then broadcasts the new partition scheme to all users. In this way, the users are all advised of which cells are available to communicate with. Thus, if a user on the upper west side wishes to obtain information from the lower east side, that user can identify which cell is currently associated with the lower east side that may contain information of interest.
The invention thus provides a hybrid solution that uses both distributed components (multicasting, coordinator) and centralized components (partition server) to dynamically partition an area so that the mobile objects are grouped efficiently. For a more complete understanding of the invention, its objects and advantages, refer to the following description and to the accompanying drawings.